package com.csi.okr.mobile.common.entity;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

/**
 * OKR版本_O（目标）表的实体类
 * 
 */
@Entity
@Table(name = "T_OKR_VERSION_OBJECTIVES", schema = "PSGIS")
public class TOkrVersionObjectives implements java.io.Serializable {

	private static final long serialVersionUID = 1L;

	private String OVersionUuid;
	/**
	 * O唯一标识码
	 */
	private String OUniqueIdCode;
	/**
	 * 责任人CODE
	 */
	private String personLiableCode;
	/**
	 * 责任人姓名
	 */
	private String personLiableName;
	/**
	 * 责任人职务名称
	 */
	private String personLiablePostname;
	/**
	 * 归属部门CODE
	 */
	private String ownerDeptcode;
	/**
	 * 年度
	 */
	private BigDecimal OYear;
	/**
	 * 季度
	 */
	private String OQuarter;
	/**
	 * 月度
	 */
	private String OMonth;
	/**
	 * O码
	 */
	private String OCode;
	/**
	 * OKR来源
	 */
	private BigDecimal okrSource;
	/**
	 * O的定义
	 */
	private String ODefinition;
	/**
	 * 状态
	 */
	private String OState;
	/**
	 * 是否全公司透明
	 */
	private BigDecimal isVisibleOverall;
	/**
	 * 是否上级可见
	 */
	private BigDecimal isVisibleSuperior;
	/**
	 * 是否下级可见
	 */
	private BigDecimal isVisibleSubordinate;
	/**
	 * 是否指定可见人
	 */
	private BigDecimal isVisibleDesignated;
	/**
	 * 填报时间
	 */
	private Date fillingTime;
	/**
	 * 指定审核人CODE
	 */
	private String designatedApplyerCode;
	/**
	 * 指定审核人姓名
	 */
	private String designatedApplyerName;
	/**
	 * 指定审核时间
	 */
	private Date designatedApplyTime;
	/**
	 * 发布时间
	 */
	private Date deliveryTime;
	/**
	 * 申请结束原因
	 */
	private String applicationEndReasons;
	/**
	 * 申请结束时间
	 */
	private Date applicationEndTime;
	/**
	 * 结束审核人CODE
	 */
	private String verificationOverPersoCode;
	/**
	 * 结束审核人姓名
	 */
	private String verificationOverPersonName;
	/**
	 * 结束审核时间
	 */
	private Date verificationOverTime;
	/**
	 * 上级OKR关联类别
	 */
	private BigDecimal parentOkrRelationType;
	/**
	 * 上级OKR关联唯一标识
	 */
	private String parentOkrUniqueIdCode;
	/**
	 * 版本标识
	 */
	private Date versionTag;
	/**
	 * 版本号
	 */
	private String versionCode;
	/**
	 * OKR变更原因
	 */
	private String okrChangeReason;
	/**
	 * OKR变更内容
	 */
	private String okrChangeContent;
	/**
	 * 备份时间
	 */
	private Date backupTime;

	public TOkrVersionObjectives() {
	}

	public TOkrVersionObjectives(String OVersionUuid, String OUniqueIdCode) {
		this.OVersionUuid = OVersionUuid;
		this.OUniqueIdCode = OUniqueIdCode;
	}

	public TOkrVersionObjectives(String OVersionUuid, String OUniqueIdCode, String personLiableCode,
			String personLiableName, String personLiablePostname, String ownerDeptcode, BigDecimal OYear,
			String OQuarter, String OMonth, String OCode, BigDecimal okrSource, String ODefinition, String OState,
			BigDecimal isVisibleOverall, BigDecimal isVisibleSuperior, BigDecimal isVisibleSubordinate,
			BigDecimal isVisibleDesignated, Date fillingTime, String designatedApplyerCode,
			String designatedApplyerName, Date designatedApplyTime, Date deliveryTime,
			String applicationEndReasons, Date applicationEndTime, String verificationOverPersoCode,
			String verificationOverPersonName, Date verificationOverTime, BigDecimal parentOkrRelationType,
			String parentOkrUniqueIdCode, Date versionTag, String versionCode, String okrChangeReason,
			String okrChangeContent, Date backupTime) {
		this.OVersionUuid = OVersionUuid;
		this.OUniqueIdCode = OUniqueIdCode;
		this.personLiableCode = personLiableCode;
		this.personLiableName = personLiableName;
		this.personLiablePostname = personLiablePostname;
		this.ownerDeptcode = ownerDeptcode;
		this.OYear = OYear;
		this.OQuarter = OQuarter;
		this.OMonth = OMonth;
		this.OCode = OCode;
		this.okrSource = okrSource;
		this.ODefinition = ODefinition;
		this.OState = OState;
		this.isVisibleOverall = isVisibleOverall;
		this.isVisibleSuperior = isVisibleSuperior;
		this.isVisibleSubordinate = isVisibleSubordinate;
		this.isVisibleDesignated = isVisibleDesignated;
		this.fillingTime = fillingTime;
		this.designatedApplyerCode = designatedApplyerCode;
		this.designatedApplyerName = designatedApplyerName;
		this.designatedApplyTime = designatedApplyTime;
		this.deliveryTime = deliveryTime;
		this.applicationEndReasons = applicationEndReasons;
		this.applicationEndTime = applicationEndTime;
		this.verificationOverPersoCode = verificationOverPersoCode;
		this.verificationOverPersonName = verificationOverPersonName;
		this.verificationOverTime = verificationOverTime;
		this.parentOkrRelationType = parentOkrRelationType;
		this.parentOkrUniqueIdCode = parentOkrUniqueIdCode;
		this.versionTag = versionTag;
		this.versionCode = versionCode;
		this.okrChangeReason = okrChangeReason;
		this.okrChangeContent = okrChangeContent;
		this.backupTime = backupTime;
	}

	@Id
	@Column(name = "O_VERSION_UUID", unique = true, nullable = false, length = 32)
	public String getOVersionUuid() {
		return this.OVersionUuid;
	}

	public void setOVersionUuid(String OVersionUuid) {
		this.OVersionUuid = OVersionUuid;
	}

	@Column(name = "O_UNIQUE_ID_CODE", nullable = false, length = 20)
	public String getOUniqueIdCode() {
		return this.OUniqueIdCode;
	}

	public void setOUniqueIdCode(String OUniqueIdCode) {
		this.OUniqueIdCode = OUniqueIdCode;
	}

	@Column(name = "PERSON_LIABLE_CODE", length = 12)
	public String getPersonLiableCode() {
		return this.personLiableCode;
	}

	public void setPersonLiableCode(String personLiableCode) {
		this.personLiableCode = personLiableCode;
	}

	@Column(name = "PERSON_LIABLE_NAME", length = 16)
	public String getPersonLiableName() {
		return this.personLiableName;
	}

	public void setPersonLiableName(String personLiableName) {
		this.personLiableName = personLiableName;
	}

	@Column(name = "PERSON_LIABLE_POSTNAME", length = 16)
	public String getPersonLiablePostname() {
		return this.personLiablePostname;
	}

	public void setPersonLiablePostname(String personLiablePostname) {
		this.personLiablePostname = personLiablePostname;
	}

	@Column(name = "OWNER_DEPTCODE", length = 16)
	public String getOwnerDeptcode() {
		return this.ownerDeptcode;
	}

	public void setOwnerDeptcode(String ownerDeptcode) {
		this.ownerDeptcode = ownerDeptcode;
	}

	@Column(name = "O_YEAR", precision = 22, scale = 0)
	public BigDecimal getOYear() {
		return this.OYear;
	}

	public void setOYear(BigDecimal OYear) {
		this.OYear = OYear;
	}

	@Column(name = "O_QUARTER", length = 2)
	public String getOQuarter() {
		return this.OQuarter;
	}

	public void setOQuarter(String OQuarter) {
		this.OQuarter = OQuarter;
	}

	@Column(name = "O_MONTH", length = 2)
	public String getOMonth() {
		return this.OMonth;
	}

	public void setOMonth(String OMonth) {
		this.OMonth = OMonth;
	}

	@Column(name = "O_CODE", length = 2)
	public String getOCode() {
		return this.OCode;
	}

	public void setOCode(String OCode) {
		this.OCode = OCode;
	}

	@Column(name = "OKR_SOURCE", precision = 22, scale = 0)
	public BigDecimal getOkrSource() {
		return this.okrSource;
	}

	public void setOkrSource(BigDecimal okrSource) {
		this.okrSource = okrSource;
	}

	@Column(name = "O_DEFINITION", length = 256)
	public String getODefinition() {
		return this.ODefinition;
	}

	public void setODefinition(String ODefinition) {
		this.ODefinition = ODefinition;
	}

	@Column(name = "O_STATE", length = 2)
	public String getOState() {
		return this.OState;
	}

	public void setOState(String OState) {
		this.OState = OState;
	}

	@Column(name = "IS_VISIBLE_OVERALL", precision = 22, scale = 0)
	public BigDecimal getIsVisibleOverall() {
		return this.isVisibleOverall;
	}

	public void setIsVisibleOverall(BigDecimal isVisibleOverall) {
		this.isVisibleOverall = isVisibleOverall;
	}

	@Column(name = "IS_VISIBLE_SUPERIOR", precision = 22, scale = 0)
	public BigDecimal getIsVisibleSuperior() {
		return this.isVisibleSuperior;
	}

	public void setIsVisibleSuperior(BigDecimal isVisibleSuperior) {
		this.isVisibleSuperior = isVisibleSuperior;
	}

	@Column(name = "IS_VISIBLE_SUBORDINATE", precision = 22, scale = 0)
	public BigDecimal getIsVisibleSubordinate() {
		return this.isVisibleSubordinate;
	}

	public void setIsVisibleSubordinate(BigDecimal isVisibleSubordinate) {
		this.isVisibleSubordinate = isVisibleSubordinate;
	}

	@Column(name = "IS_VISIBLE_DESIGNATED", precision = 22, scale = 0)
	public BigDecimal getIsVisibleDesignated() {
		return this.isVisibleDesignated;
	}

	public void setIsVisibleDesignated(BigDecimal isVisibleDesignated) {
		this.isVisibleDesignated = isVisibleDesignated;
	}

	@Column(name = "FILLING_TIME")
	public Date getFillingTime() {
		return this.fillingTime;
	}

	public void setFillingTime(Date fillingTime) {
		this.fillingTime = fillingTime;
	}

	@Column(name = "DESIGNATED_APPLYER_CODE", length = 12)
	public String getDesignatedApplyerCode() {
		return this.designatedApplyerCode;
	}

	public void setDesignatedApplyerCode(String designatedApplyerCode) {
		this.designatedApplyerCode = designatedApplyerCode;
	}

	@Column(name = "DESIGNATED_APPLYER_NAME", length = 16)
	public String getDesignatedApplyerName() {
		return this.designatedApplyerName;
	}

	public void setDesignatedApplyerName(String designatedApplyerName) {
		this.designatedApplyerName = designatedApplyerName;
	}

	@Column(name = "DESIGNATED_APPLY_TIME")
	public Date getDesignatedApplyTime() {
		return this.designatedApplyTime;
	}

	public void setDesignatedApplyTime(Date designatedApplyTime) {
		this.designatedApplyTime = designatedApplyTime;
	}

	@Column(name = "DELIVERY_TIME")
	public Date getDeliveryTime() {
		return this.deliveryTime;
	}

	public void setDeliveryTime(Date deliveryTime) {
		this.deliveryTime = deliveryTime;
	}

	@Column(name = "APPLICATION_END_REASONS", length = 1024)
	public String getApplicationEndReasons() {
		return this.applicationEndReasons;
	}

	public void setApplicationEndReasons(String applicationEndReasons) {
		this.applicationEndReasons = applicationEndReasons;
	}

	@Column(name = "APPLICATION_END_TIME")
	public Date getApplicationEndTime() {
		return this.applicationEndTime;
	}

	public void setApplicationEndTime(Date applicationEndTime) {
		this.applicationEndTime = applicationEndTime;
	}

	@Column(name = "VERIFICATION_OVER_PERSO_CODE", length = 12)
	public String getVerificationOverPersoCode() {
		return this.verificationOverPersoCode;
	}

	public void setVerificationOverPersoCode(String verificationOverPersoCode) {
		this.verificationOverPersoCode = verificationOverPersoCode;
	}

	@Column(name = "VERIFICATION_OVER_PERSO_NNAME", length = 16)
	public String getVerificationOverPersonName() {
		return this.verificationOverPersonName;
	}

	public void setVerificationOverPersonName(String verificationOverPersonName) {
		this.verificationOverPersonName = verificationOverPersonName;
	}

	@Column(name = "VERIFICATION_OVER_TIME")
	public Date getVerificationOverTime() {
		return this.verificationOverTime;
	}

	public void setVerificationOverTime(Date verificationOverTime) {
		this.verificationOverTime = verificationOverTime;
	}

	@Column(name = "PARENT_OKR_RELATION_TYPE", precision = 22, scale = 0)
	public BigDecimal getParentOkrRelationType() {
		return this.parentOkrRelationType;
	}

	public void setParentOkrRelationType(BigDecimal parentOkrRelationType) {
		this.parentOkrRelationType = parentOkrRelationType;
	}

	@Column(name = "PARENT_OKR_UNIQUE_ID_CODE", length = 18)
	public String getParentOkrUniqueIdCode() {
		return this.parentOkrUniqueIdCode;
	}

	public void setParentOkrUniqueIdCode(String parentOkrUniqueIdCode) {
		this.parentOkrUniqueIdCode = parentOkrUniqueIdCode;
	}

	@Column(name = "VERSION_TAG")
	public Date getVersionTag() {
		return this.versionTag;
	}

	public void setVersionTag(Date versionTag) {
		this.versionTag = versionTag;
	}

	@Column(name = "VERSION_CODE", length = 2)
	public String getVersionCode() {
		return this.versionCode;
	}

	public void setVersionCode(String versionCode) {
		this.versionCode = versionCode;
	}

	@Column(name = "OKR_CHANGE_REASON", length = 1024)
	public String getOkrChangeReason() {
		return this.okrChangeReason;
	}

	public void setOkrChangeReason(String okrChangeReason) {
		this.okrChangeReason = okrChangeReason;
	}

	@Column(name = "OKR_CHANGE_CONTENT", length = 1024)
	public String getOkrChangeContent() {
		return this.okrChangeContent;
	}

	public void setOkrChangeContent(String okrChangeContent) {
		this.okrChangeContent = okrChangeContent;
	}

	@Column(name = "BACKUP_TIME")
	public Date getBackupTime() {
		return this.backupTime;
	}

	public void setBackupTime(Date backupTime) {
		this.backupTime = backupTime;
	}

	private VOkrOrg versionOrg;

	@OneToOne
	@JoinColumn(name = "OWNER_DEPTCODE", referencedColumnName = "ORG_CODE", insertable = false, updatable = false)
	public VOkrOrg getVersionOrg() {
		return versionOrg;
	}

	public void setVersionOrg(VOkrOrg versionOrg) {
		this.versionOrg = versionOrg;
	}

}
